perm filename SDI1[E85,JMC] blob sn#801101 filedate 1985-08-01 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	@make(letter)
C00008 ENDMK
CāŠ—;
@make(letter)
@style(indent 0)
@begin(center)
John McCarthy
846 Lathrop Drive
Stanford, CA 94305
@end(center)
@tabclear
@tabdivide(3)
@b[Telephone (415) 857-0672@\@>July 31, 1985]
@begin(address)
Mr. .....
@end(address)
@begin (body)
@greeting(Dear Sir:)
A number of scientists have recently claimed that the computer  
programs needed to realize the Strategic Defense Initiative (SDI) are impossible
to make reliable, and therefore the project must be abandoned.  As far as I can 
see, these scientists are speaking beyond their competence in order to lend 
support to the anti-SDI cause.

The computing arguments they have raised are of a general character.  The
Fletcher report on ballistic missiles defense says a program with 6 to 10
million instructions will be required.* This would indeed be a very large
program. But that doesn't justify the assertion by these scientists that
the program cannot be written, and if written, could not be verified.
Even larger programs have been written and put into immediate successful
use.

For example, the program put into use by AT&T when the nation changed over to
electronic switching has 50 million lines of code.  Furthermore, it has
14,000 interconnections between nodes, compared to an estimated 4500
interconnections in the SDI program.

In other words, the telephone program is bigger and in many respects more
complex than SDI requirements.  Yet the program worked well from the
moment it was put into operation.

The argument against SDI continues by asserting that the only way to make the
program reliable is to have a nuclear war in order to test all parts of it.  This
is a mistake.  Many present programs are designed to deal with emergencies too
dangerous or expensive to allow them to happen for test purposes.  Yet techniques
are available to make these programs reliable.  The mammoth AT&T program worked 
when it was turned on although it had never been tested in "battle". 

These techniques for checking large programs include the following. 
First mathematical techniques exist for proving parts of a program
correct and checking those proofs by computer.
Second,
simulated battle conditions can be created that are even more complex and  more
stressing than a real attack.

*Report of the Study on Eliminating the Threat Posed by Nuclear Ballistic
Missiles, Volume 5 (Battle Management, Communications and Data
Processing), p. 43.

@newpage
My conclusion, based on 30 years of research in computing and artificial
intelligence, is that
those who oppose Strategic Defense or "Star Wars" have no basis in
computer science for predicting its failure.  They must rely on the
general principle: Where there is a will to fail, obstacles can always be
found.

Like the other scientific and engineering problems associated with SDI,
the computer problems are likely to be challenging.
@end(body)
Sincerely


John McCarthy
Professor of Computer Science
Stanford University

[John McCarthy is one of the leaders of American computer science.  He was
one of the originators of artificial intelligence research, developed
the programming language LISP most used in AI, originated the concept
of computer time-sharing that is the basis of present computer operating
systems, and originated some of the main methods of mathematically proving
that computer programs meet their specifications.  He founded the Stanford
Artificial Intelligenc Laboratory and has served as President of the
American Association for Artificlal Intelligence.]